home *** CD-ROM | disk | FTP | other *** search
- {
- From: regis@alpha2.csd.uwm.edu (Joseph William Metcalf)
-
- There are been a couple posts looking for a way to read the device name for
- CD audio play functions, so here it is (tested under TP7):
- }
-
- type DRIVELIST=Record
- unitcode:byte;
- doffset,dsegment:word;
- end;
-
- var
- CDDL:DriveList;
-
- function GetDriverName:string;
- var
- CDNTemp:array[1..18] of byte;
- where:pointer;
- count:byte;
- CDSTemp:string[8];
- begin
- asm
- mov ax,1501h
- mov bx,OFFSET CDDL
- mov dx,SEG CDDL
- mov es,dx
- int 2fh
- end;
- where:=ptr(CDDL.dsegment,CDDL.doffset);
- move(where^,CDNTEMP,18);
- count:=1;
- repeat
- CDStemp[count]:=chr(cdntemp[10+count]);
- inc(count);
- until (count>8) or (cdntemp[10+count]=32);
- cdstemp[0]:=chr(count-1);
- getdrivername:=cdstemp;
- end;
- {
- This uses the MSCDEX function 1501h (Int 2fh) to read the drivelist and
- segment/offset of the device driver header. Device name is 10 bytes into the
- header, max 8 characters, padded with spaces if the name is less than 8
- characters.
- }
- begin
- Writeln(GetDriverName);
- end.